Skip to content

[Core] Fix a bug in the LightAppEntity Build function to support send…#909

Open
Controllerdestiny wants to merge 1 commit into
LagrangeDev:masterfrom
Controllerdestiny:master
Open

[Core] Fix a bug in the LightAppEntity Build function to support send…#909
Controllerdestiny wants to merge 1 commit into
LagrangeDev:masterfrom
Controllerdestiny:master

Conversation

@Controllerdestiny

Copy link
Copy Markdown
Contributor

使用无参构造BinaryPacket时调用BinaryPacket.GrowSize函数会导致陷入死循环。
不清楚开发者意图是什么,或许应该禁用无参构造。

internal ref struct BinaryPacket
{
    private int _offset;
    private int _capacity;
    private void GrowSize(int additional)
    {
        while (_offset + additional > _capacity) _capacity *= 2; //_capacity 初始值为 0 时, 0 * 2 = 0 恒成立,条件是死循环。
        _bytesToReturnToPool = ArrayPool<byte>.Shared.Rent(_capacity);

        _span[.._offset].CopyTo(_bytesToReturnToPool.AsSpan());

        _span = _bytesToReturnToPool.AsSpan();
        _buffer = ref Unsafe.Add(ref MemoryMarshal.GetReference(_span), _offset);
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant